Predictive content delivery

ABSTRACT

A method and related hardware for improved search engine results delivered to multiple devices associated with a same user is provided. The multiple devices may each have a user profile associated therewith and the search results delivered may be based on the user profile.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No. 14/623,518 filed on Feb. 17, 2015 and entitled “Predictive Content Delivery,” now U.S. Pat. No. 9,323,862, which is a continuation of U.S. patent application Ser. No. 12/348,136 filed Jan. 2, 2009 and entitled “Predictive Content Delivery,” now U.S. Pat. No. 9,002,828, the disclosure of which are incorporated herein by reference.

The present application is related to U.S. patent application Ser. No. 12/002,300 filed Dec. 13, 2007 and entitled “Content Delivery to a Mobile Device from a Content Service,” the disclosure of which is incorporated herein by reference.

BACKGROUND

1. Field of the Invention

The present invention generally relates to wireless mobile devices. More specifically, the present invention relates to searching for content stored at a remote location via a mobile device and efficiently delivering desired content to the mobile device from that remote location.

2. Description of Related Art

Mobile devices are becoming all inclusive computing devices. Mobile devices are no longer limited to operation solely as a mobile phone and even as a personal digital assistant (“PDA”). With increased processing and battery power and improved display and interface functions, mobile devices are now expected to serve as a ‘laptop on the go.’ Mobile devices are expected to provide not only telephony and/or PDA functions but near-instant access to multimedia and other on-demand content.

Notwithstanding the technological advances in mobile devices, they are not without their limitations. Mobile devices tend to have less processing power, less memory, and more bandwidth constraints as compared to a desktop or laptop computer. Memory constraints may be satisfied by using the mobile device as a client communicatively coupled to a server, which may be nothing more than a home computer with greater storage capacity. While offloading of data solves mobile device memory issues, the shifting of storage responsibilities gives rise to other issues including those related to bandwidth, processing, and on-demand access to such content.

For example, a user may store all of their personal photos at a desktop computer having been configured with a remote access application. This remote access application may allow for access and control of the desktop computing device via a mobile device. The user of the mobile device is then required to search through dozens if not hundreds of photographs at the computing device. While such search activities may be taken for granted when sitting in front of a laptop, attempting to navigate various levels of files may prove difficult on a device with a limited user interface.

Retrieving content from the server/home computing device may prove similarly difficult and/or laborious. A home computer possesses a powerful central processor (or processors) that allow for desired content to be readily accessed, retrieved, and viewed. That same content, when transported to a mobile device, must be identified at the home computer via the mobile device, prepared for transport over an intermediate communications medium (or media), received by the mobile device, stored at the mobile device, retrieved for viewing, and ultimately rendered or executed by the mobile device.

Some files are very large such as music files or high quality photographs. These files will consume a great deal of bandwidth. Similarly, a desktop computer tends to be configured with any number of media execution applications to allow for seamless access and rendering of content. Some applications may not be present on a mobile device for any number of reasons, including processing power and memory constraints.

As such, there is a need in the art for ease of access to content stored at a central storage device and that may be accessed by a mobile device having more limited computational and/or display abilities than that central computing device.

SUMMARY OF THE CLAIMED INVENTION

A method for predictive content retrieval is recited. A search query is received at a computing device storing content. The search query is generated at a mobile device. In response to the search query, search results are provided. The search results are provided to the mobile device by the computing device storing content. Content is retrieved from storage at the computing device followed by receipt of a user request at the computing device storing content. The user request identifies content previously identified in the search results. Content is delivered to the mobile device, the delivered content being responsive to the user request and retrieved from storage prior to the user request identifying the content.

A related mobile device is also provided.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 depicts an exemplary system for implementing search requests initiated by a mobile device.

FIG. 2 depicts an exemplary method for performing predictive content searches for the delivery of content to a mobile device.

DETAILED DESCRIPTION

FIG. 1 depicts an exemplary system 100 for implementing search requests initiated by a mobile device. System 100 of FIG. 1 includes mobile device 110 communicatively coupled a data store (personal computer 130) via network 120. Personal computer 130 includes a connector application 140 and content 180 as will be further described herein. Additional components may be introduced to system 100 such as billing application servers or third-party application servers. The computing devices referenced in FIG. 1 are inclusive of the necessary processing devices and memory to allow for storage and execution of the various applications described herein.

Network 120 is inclusive of any variety of communications networks including geographically dispersed telecommunications networks such as a Wide Area Network (WAN) or the Internet, intermediate networks restricted to a metropolitan area such as a Metropolitan Area Network (MAN), and interconnected workstations within a relatively small geographic area such as a Local Area Network (LAN). Network 140 may be homogeneous or heterogeneous with respect to any particular communications medium (e.g., wireless or landline) and may overlap with or be shared by various service providers. Various hardware components (e.g., base stations, routers, and so forth) may be implemented in network 120.

Mobile device 110 is inclusive of any portable device used for mobile communications. Examples of a mobile device 110 include a PDA and Internet-enabled cellular phones or Smart Phone. Mobile device 110 is capable of network connectivity such that it may exchange information with other computing devices over network 120.

Mobile device 110 may include any number of customized applications (e.g., media players or certain applications that may be required to interact to connector application 140). Mobile device 110 may likewise include one or more generalized software applications such as web browsers and electronic-mail applications that allow for or facilitate data exchanges. Mobile device 110 may include a ‘search’ application to allow a user to search for content 180 at data store (personal computer 130). The ‘search’ application may be a client-side user-interface application related to connector application 140.

Data store (personal computer 130) is a computing device on the network 120 capable of processing search requests generated by the mobile device 110. Data store (personal computer 130) may translate a search request originated in a format native to mobile device 110 into a format comprehensible by data store (personal computer 130). Data store (personal computer 130) may be further configured to identify a sub-set of data from search results generated in response to the aforementioned search request and that correspond to a search constraint related to a mobile device profile, network service provider policy, or user profile. The aforementioned functionalities may be embodied in a software module or engine executable at the data store (personal computer 130). Data store (personal computer 130) may further include executable applications for interacting with connector application 140.

Data store is not limited to a personal computer. Data store may be a storage server managed by an enterprise or content service. For the purpose of the present discussion, data store will be exemplified as a personal computer 130. Content server 120 may also be capable of executing searches of content sources 150 for content and that correspond to a search request generated by mobile device 110.

Personal computer 130 includes content 180. Content 180 is inclusive of any and all types of content that may be stored in an electronic storage medium. For example, content 180 may be photographs or videos. Content 180 may also be audio files. Content 180 may also be more traditional ‘office’ documents such as PowerPoint™ presentations, spreadsheets, and word processing documents. Content 180 may be stored in any organizational hierarchy (e.g., an ordered file system such as ‘Music,’ ‘Genre,’ ‘Artist,’ ‘Album,’ ‘Track Name’) including the lack of any such hierarchy (e.g., all files randomly saved to a ‘desktop’).

Personal computer 130 includes a connector application 140 that is executable by a processor. Connector application 140 facilitates interaction with a mobile device 110 associated with or otherwise having access to the personal computer 130. Connector application 140 may, in this regard, be responsible for managing access permissions and/or assisting in the negotiation of a session between the personal computer 130 and mobile device 110.

The connector application 140 of FIG. 1 includes a number of subsidiary applications: profile manager 145, access history manager 150, prediction engine 155, Quality of Service (QOS) engine 160, and reformatting engine 165. Connector application may operate in conjunction with data store 170 to store and retrieve data, including content 180 and profile 190 and access history 195. Data store 170 is inclusive of any storage medium known in the art and that may be utilized by a general purpose computer (such as personal computer 130) or even more specialized computing devices such as network servers. Subsidiary applications may be an integrated part of the connector application 140 or independent applications or modules linked to connector application 140.

Execution of the profile manager 145 allows for the connector application to access user profile data 190 as may be stored in data store 170. A profile may be unique to personal computer 130 (i.e., no one else uses the computer) or may be determined through any number of indicia provided by or derived from mobile device 110. For example, various unique identifiers may be associated with the mobile device 110 including an IP address, a mobile identification number (MIN), or electronic identification number (EIN). A personal identification number (PIN) and subscriber identity module (SIM) card combination may also be used. Other information may be stored on the SIM card and used as an identifier of the mobile device 110 as that device concerns a user profile. Traditional user names and/or passwords as may be entered at the mobile device 110 or that may be provided in a token may also be used. A telephone number of the mobile device 110 may likewise be used.

User profile data 190 may indicate user preferences for particular types of content. A user profile may indicate that the corresponding user prefers a particular genre of music or a particular artist. The profile may indicate a preference for particular pictures. The user profile may also indicate capabilities of a mobile device associated with the user (e.g., applications on the mobile device or other hardware specifications). A user may manually update the profile to indicate mobile device properties or certain data provided may be gleaned during the normal course of operation (e.g., requests for WMV files may indicate the ability for the device to execute WMV files and/or the lack of an error message in response confirms the same).

When the user associated with a particular profile logs in or begins accessing the personal computer 130 via the connection application 140, the profile manager 145 loads the corresponding profile data 190 from data store 170. Based on information in the profile data 190, the connection application 140 may begin pre-fetching certain content 180 that corresponds to the requirements and/or limitations of that profile 190. For example, if the profile data 190 for a user indicates that the mobile device may only execute WMV files, then all non-WMV video files may be excluded from search or other processing procedures. Further, the profile may indicate certain ‘favorites’ such as particular photos or audio files. The connection application 140 may queue those favorite files from content 180 such that they are available for on-demand delivery to the user.

Execution of the access history manager 150 tracks the history of content requested by a user. History manager 150 may operate in a fashion similar to a ‘history’ file in a web browser. Access history data 195 tracked by the history manager 150 may be stored in data store 170. Access history data 195 may be associated with a user profile by the connection application 140 in order to pre-load content 180 for immediate access.

Execution of the prediction engine 155 implements certain intelligence in the connection application 140 in order to identify non-explicit trends. A user may consistently listen to a series of music files not because the user is particular to those individual songs but the artist that performs them. The prediction engine 155 may identify the fact that only files of a certain format or bit rate are searched and retrieved by the user. Prediction engine 155 may utilize data and/or metadata from various sources in order to derive certain trends. The prediction engine 155 may then predict that content that might next be requested prior to the user actually requesting the content. Predictions may be based on a sample set from a single session or a series of sessions. Predictions may expire over time or be renewed if a prediction proves to be accurate on a regular basis. Predictions may be associated with a user profile 190.

Prediction engine 155 may also identify content based on a distribution curve such as the location of a file in a file structure. A file structure may have four levels. The second, third, and fourth levels are a sub-level of the first level. The third and fourth levels are a sub-level of the second level, which is a sub-level for first level. The fourth level is a sub-level of the third level, which is a sub-level of the second level, which is a sub-level of the first level. Various pieces of content may be stored in folders at each of the levels. Content in a higher level may be deemed more likely to be accessed than files in a lower level as those files take longer and are more difficult to access through a traditional file structure.

Prediction engine 155 may likewise identify those content files that have been more recently accessed. A content file saved to storage versus a content file saved some time ago may likewise indicate content more likely to be retrieved. File folders in the aforementioned file system that have been more recently accessed may likewise indicate content more likely to be retrieved.

Quality of Service (QOS) engine 160 examines conditions in a network and/or performance issues at the personal computer 130 and/or mobile device 110 with respect to early loading of particular content, exclusion of searches or loading for certain content, or aiding the prediction engine 155 with respect to determining what content should or should not be loaded. For example, if bandwidth quality is extremely poor, certain high bandwidth content may be excluded from searches. Alternatively, if the prediction engine 155 determines that the user will request that certain high bandwidth content notwithstanding the poor network quality, it may allow for the content to start being streamed prior to an actual request such that the content is already partially stored on the mobile device when the user requests the same. The QOS engine 160 may determine that the content may be altered as to better address the particularities of the network environment as may be accomplished through the execution of the reformatting engine 165. The QOS engine 160 may also determine that processor performance is sluggish on the mobile device or personal computer in response to certain performance metrics that may be periodically generated and/or requested.

Reformatting engine 165 may be executed as to reformat content 180 in the data store 170. The reformatting engine 165 may decode, encode, transcode, and/or resample content 180 in data store 170. The reformatting engine 165 may initiate reformatting of content in order to bring the content within the limitations of a network condition as identified by QOS engine 160 or to comply with the particularities of a user profile 190. For example, a mobile device 110 may not support ACC format while supporting the MP3 format. The reformatting engine 165, in response to this indication as identified in a user profile or from device feedback, may reformat content identified as being desired by the user through prediction engine 155, access history 195, or an explicit indication in the user profile.

The reformatting engine 165 may reformat an MPEG-2 encoded video file to a 3GP encoded video file by copying the MPEG-2 encoded video file and saving the copied video file as a 3GP encoded video file following transcodings of the same. In a further example, the reformatting engine 165 may reformat an AVI encoded video file having a resolution of 720 by 480 pixels to an AVI encoded video file having a resolution of 360 by 240 pixels. In a third example, the reformatting engine 165 may reformat an MPEG-4 encoded video file having a frame rate of approximately 30 frames per second (fps) to an MPEG-4 encoded video file having a frame rate of approximately 15 fps. The reformatting engine 165, in a still further example, may reformat an MP3 encoded audio file having a bit rate of 192 kilobits per second (kbps) to an MP3 encoded audio file having a bit rate of 128 kbps.

Content reformatting may be a factor dependent conversion related to the network service provider constraint or the capabilities of mobile device 110. Examples of such factors are available storage space, a user-selectable preference, supported codecs, bit rates, sampling rates, sample resolutions, or video frame rates. Other factors warranting conversion also include memory size, free available memory, screen size, and a screen resolution of the mobile device 110.

Search requests may be initiated by the mobile device 110. Search requests may identify desired content such as artists, titles, genres, or series. Search requests generated by the user of mobile device 110 may generally correspond to search requests as may be input to any commercial search engine as is known in the art. The search request generated by the mobile device 110 is then sent to the personal computer 130. The personal computer 130 returns results to the mobile device 110.

In anticipation of certain content being selected for retrieval in response to the search request, the personal computer 130 may pre-fetch content and/or format content such that the content is immediately available for transfer to the mobile device 110 upon selection by the user. As a result, content may be more quickly transferred to the mobile device 110. These determinations may be made by execution of one or more of the aforementioned managers or engines at the connector application 140 including the prediction engine 155.

Portions of content identified in the search request may be transferred by the personal computer 130 prior to the content actually being selected for delivery (e.g., the first ten seconds of content). Thus, while a user listens to the first ten seconds of content, the remainder of a particular content selection may be transferred to the user. Because the first ten seconds are already present on the mobile device 110, playback may begin immediately notwithstanding the ongoing transfer of the remaining portions of content. As such, content playback is instant notwithstanding the remote storage of the original content file at the personal computer 130.

In some embodiments, the aforementioned managers or engines at connector application 140 including the prediction engine 155 may be a part of the content search process. If content cannot be delivered because of bandwidth conditions and/or played at the mobile device 110 because of device restrictions (e.g., format or device conditions), then there is no point in identifying the file to the user for potential selection when the content cannot be played back. Use of connector application 140 to filter search results as suggested above may also occur in the context of content deliver, which would also involve the various managers or engines at the connector application 140. The connector application 140 may have dual usage in such an embodiment (search and predictive fetching).

FIG. 2 depicts an exemplary method 200 for performing content searches initiated by a mobile device. As noted in the context of FIG. 1, all of the content available at a content source and that falls within a user generated search request may not be useful or accessible to the mobile device user. In order to provide useful search results (i.e., search results that correspond to content actually accessible to the user), the search results need to be processed to correspond to any number of search constraints. Identifying content that is or that would violate one of the aforementioned search constraints (i.e., user preferences, device capabilities, network service provider constraints) is not useful. Further, providing this content (and allowing a user to select the same for delivery) may result in operational difficulties at mobile device 110 (e.g., application failures) or incur unwanted costs on the user (e.g., penalties for exceeding network bandwidth allocations). This non-useful content may be removed from the search results provided to the user of the mobile device 110.

In step 210, a search query is received at the personal computer 130 or other content storage source. Queries are generated at mobile device 110 with respect to identifying what content is available at the personal computer 130. Queries may include artists, user, song title, or other information that may be useful with respect to locating and retrieving content. Login or access credentials may need to be provided to the personal computer 130 as a prerequisite with respect to performing a search or accessing any content at the personal computer 130.

In step 220, the personal computer 130 provides results that are responsive to the query generated at the mobile device 110. The search results may be inclusive of all content at the personal computer 130 and that is responsive to the search query. The search results may alternatively be inclusive of all content at the personal computer 130 but that further meet a network or device restriction. For example, the search results may be responsive to the query but only inclusive of those content files that are capable of being transmitted over the network 120 or executable by the mobile device 110.

Following delivery of the search results in step 220, the personal computer 130 may commence with predictive content retrieval in step 230. By predictively retrieving the content for delivery to the mobile device 110 prior to the content being requested, the content may more immediately be delivered to the mobile device 110 by personal computer 130. Predictive content retrieval may involve any of the predictive methodologies discussed in the context of FIG. 1. Predictive content retrieval may also take place in the context of content reformatting.

In step 240, a request for a particular piece of content is received by the personal computer 130 from mobile device 110. This request for content is generated and delivered to the personal computer 130 following delivery of search results in step 220. Content is then delivered to the mobile device 110 by the personal computer 130 in step 250. In some embodiments, portions of content may be preemptively delivered to the mobile device 110 to even further expedite content delivery.

Additional steps may be implemented with respect to the method 200 of FIG. 2. Steps may take place in the order reflected by FIG. 2, concurrent with other steps, or in another order as may be derived by one skilled in the art. The aforementioned method may be executed by a processor at a computing device. The computing device may execute this method through the processing of a computer program embodied in a computer-readable storage medium. The storage medium is inclusive of media such as a CD, memory, floppy disk, flash memory, and hard drive.

While the present invention has been described in connection with a series of preferred embodiments, these descriptions are not intended to limit the scope of the invention to the particular forms set forth herein. For example, any number of the functionalities described herein may be distributed to one or more computing devices or offloaded to or combined with other devices performing other primary functionalities. To the contrary, the present descriptions are intended to cover such alternatives, modifications, and equivalents as may be included within the spirit and scope of the invention as defined by the appended claims and otherwise appreciated by one of ordinary skill in the art. 

What is claimed is:
 1. A method comprising: receiving first information identifying a first user logged in at a mobile device; receiving, from the mobile device, a first search query generated by the first user at the mobile device; transmitting a first set of results to the mobile device in response to the first search query; associating the first set of results with a first profile associated with the first user; receiving second information identifying the mobile device in use by an unidentified user without identifying the first user logged in at the mobile device; receiving, from the mobile device, a second search query generated by the unidentified user at the mobile device; transmitting a second set of results to the mobile device in response to the second search query; associating the second set of results with a second profile associated with the mobile device in use without the first user logged in; determining a first predicted content for the mobile device based on the first profile; determining a second predicted content for the mobile device based on the second profile; transmitting at least a portion of the first predicted content to the mobile device for display before receiving a subsequent search request; and transmitting at least a portion of the second predicted content to the mobile device for display before receiving the subsequent search request, wherein the first predicted content is different from the second predicted content, wherein the first predicted content is reformatted in response to a user selection at the mobile device.
 2. The method of claim 1 wherein the first profile includes at least one of: a username, a password, and a personal identification number (PIN) associated with the first user.
 3. The method of claim 1 wherein the first profile is associated with a user name and password related to a content server for the first predicted content.
 4. The method of claim 1 wherein the first profile indicates user preferences for certain types of content.
 5. The method of claim 1 wherein the second profile includes at least one of a first telephone number, a first Internet Protocol (IP) address, a first mobile identification number (MIN), a first electronic identification number (EIN), and a first subscriber identity module (SIM) card information associated with the mobile device.
 6. A content server comprising: a memory; and a processor, the content server configured for: receiving first information identifying a first user logged in at a mobile device; receiving, from the mobile device, a first search query generated by the first user at the mobile device; transmitting a first set of results to the mobile device in response to the first search query; associating the first set of results with a first profile associated with the first user; receiving second information identifying the mobile device in use by an unidentified user without identifying the first user logged in at the mobile device; receiving, from the mobile device, a second search query generated by the unidentified user at the mobile device; transmitting a second set of results to the mobile device in response to the second search query; associating the second set of results with a second profile associated with the mobile device in use without the first user logged in; determining a first predicted content for the mobile device based on the first profile; determining a second predicted content for the mobile device based on the second profile; transmitting at least a portion of the first predicted content to the mobile device for display before receiving a subsequent search request; and transmitting at least a portion of the second predicted content to the mobile device for display before receiving the subsequent search request, wherein the first predicted content is different from the second predicted content, wherein the first predicted content is reformatted in response to a user selection at the mobile device.
 7. The content server of claim 6 wherein the first profile includes at least one of: a username, a password, and a personal identification number (PIN) associated with the first user.
 8. The content server of claim 6 wherein the first profile is associated with a user name and password related to the content server.
 9. The content server of claim 6 wherein the first profile indicates user preferences for certain types of content.
 10. The content server of claim 6 wherein the second profile includes at least one of a first telephone number, a first Internet Protocol (IP) address, a first mobile identification number (MIN), a first electronic identification number (EIN), and a first subscriber identity module (SIM) card information associated with the mobile device.
 11. A non-transitory computer readable medium configured for being executed by a server for: receiving first information identifying a first user logged in at a mobile device; receiving, from the mobile device, a first search query generated by the first user at the mobile device; transmitting a first set of results to the mobile device in response to the first search query; associating the first set of results with a first profile associated with the first user; receiving second information identifying the mobile device in use by an unidentified user without identifying the first user logged in at the mobile device; receiving, from the mobile device, a second search query generated by the unidentified user at the mobile device; transmitting a second set of results to the mobile device in response to the second search query; associating the second set of results with a second profile associated with the mobile device in use without the first user logged in; determining a first predicted content for the mobile device based on the first profile; determining a second predicted content for the mobile device based on the second profile; transmitting at least a portion of the first predicted content to the mobile device for display before receiving a subsequent search request; and transmitting at least a portion of the second predicted content to the mobile device for display before receiving the subsequent search request, wherein the first predicted content is different from the second predicted content, wherein the first predicted content is reformatted in response to a user selection at the mobile device. 